Cryptext x64 0.8a - Mehrfachauswahl + sichtbarer Sitzungscache
=================================================================

ACHTUNG
-------
0.8a kann wie 0.8 bei Ver- UND Entschlüsselung die jeweilige Quelldatei löschen,
wenn "Originaldatei beibehalten" NICHT aktiviert ist. Die ersten Batch-Tests
deshalb ausschließlich mit entbehrlichen Kopien durchführen.

Änderung 1: Passwort-Bullets
----------------------------
Im Remember-Modus wird nach einer Operation die aktive Passwortregion weiterhin
vollständig gelöscht. Die getrennte Sitzungskopie bleibt bestehen.

Neu ist nur die Anzeige: Wenn die aktive Länge 0 ist, der Remember-Radiobutton
aktiv ist und secure_session_length > 0, erzeugt RefreshPasswordDisplay dieselbe
Anzahl U+2022-Bullets aus der LÄNGE. Das echte Passwort wird für die Anzeige
nicht in die aktive Region zurückkopiert und nicht in das EDIT geschrieben.

Test:
1. "Bis Cryptext beendet wird merken" aktivieren.
2. Passwort eingeben und eine Datei erfolgreich verarbeiten.
3. Danach müssen weiterhin Bullets sichtbar sein.
4. Ohne neue Eingabe erneut OK drücken: dieselbe Sitzungskopie muss funktionieren.
5. "Nicht im Speicher behalten" anklicken: die Bullets müssen sofort verschwinden.
6. Danach OK ohne neues Passwort: "Bitte zuerst ein Passwort eingeben."

Änderung 2: Mehrfachauswahl
---------------------------
Der klassische GetOpenFileNameW-Dialog verwendet jetzt OFN_ALLOWMULTISELECT.
Mehrere Dateien aus dem gleichen geöffneten Ordner können gemeinsam markiert
werden. Der Windows-Dialog liefert:
  single:   Vollpfad\0
  multiple: Ordner\0Datei1\0Datei2\0...\0\0

Cryptext erweitert jeden Namen intern zu einem vollständigen Pfad und ruft für
jede Datei den bereits getesteten 0.8-Transaktionskern separat auf.

Batch-Regeln
------------
- Das Passwort wird genau einmal vor dem Dateidialog vorbereitet.
- In "Nicht im Speicher behalten" bleibt die aktive Passwortkopie nur bis zum
  Ende dieses Batches erhalten und wird dann überschrieben.
- Im Remember-Modus bleibt zusätzlich die getrennte Sitzungskopie bestehen.
- Normale Dateien werden verschlüsselt.
- Dateien mit der Endung .$#! werden als moderne Entschlüsselungsfälle behandelt;
  Format und GCM müssen trotzdem validieren.
- Ein Fehler bei einer Datei stoppt die folgenden ausgewählten Dateien nicht.
- Bei Mehrfachauswahl erscheint am Ende nur eine Zusammenfassung mit
  "Erfolgreich" und "Fehlgeschlagen".
- Ein Authentifizierungsfehler markiert den Batch und verwirft nach dem Batch
  die optionale Sitzungskopie. Die übrigen Dateien werden vorher noch versucht.
- Jede Datei behält ihre eigene Salt/Nonce/Key-Ableitung und ihre eigene
  temp -> verify -> commit -> optional source-delete Transaktion.
- Vorhandene Ziel- oder Temp-Dateien werden weiterhin niemals überschrieben.

Empfohlene Tests
----------------
A. Drei normale kleine Dateien gleichzeitig auswählen.
   Erwartung: 3 erfolgreich; drei .$#!-Ergebnisse, abhängig vom Häkchen mit oder
   ohne Klartextquellen.

B. Drei dazugehörige .$#!-Dateien gemeinsam entschlüsseln.
   Erwartung: 3 erfolgreich; Originalgrößen und Inhalte stimmen.

C. Gemischter Batch mit z.B. zwei normalen Dateien und einer unrelated .$#!.
   Erwartung: alle drei werden entsprechend ihrer Endung verarbeitet.
   Nicht gleichzeitig foo.txt UND foo.txt.$#! auswählen, wenn deren jeweilige
   Zielnamen bereits miteinander kollidieren.

D. Einen absichtlichen Fehler einbauen, z.B. eine bereits vorhandene Zieldatei.
   Erwartung: mindestens 1 fehlgeschlagen, spätere Dateien werden trotzdem
   verarbeitet; erfolgreiche frühere Ergebnisse werden nicht zurückgerollt.

E. Remember-Modus:
   nach dem Batch müssen die display-only Bullets sichtbar bleiben und ein
   weiterer Batch ohne Neueingabe muss mit dem Cache funktionieren.

F. Falsches Passwort bei einem Batch mit .$#!:
   Auth-Fehler zählen als fehlgeschlagen; keine unvollständige Klartextdatei darf
   final bleiben; die verschlüsselte Quelle bleibt erhalten. Nach Batchende wird
   die Sitzungskopie verworfen.

G. Regression:
   0 Byte, 1 Byte, 4 MiB, 4 MiB + 1 Byte und >300 MiB weiterhin prüfen.

Hinweis
-------
Der klassische Open-Dialog wählt mehrere Dateien innerhalb eines Ordners aus.
Die spätere Explorer-Shell-/Commandline-Schicht kann dieselbe Batch-Schleife mit
anderweitig gelieferten Pfadlisten wiederverwenden.

Legacy Cryptext 3.x bleibt in 0.8a deaktiviert.
